#include "t_i2c_m_interface.h"
#include "stm32f0xx_hal.h"
#include "t_i2c_m.h"
t_i2c_gpio_t gpio_iic = {
    .pin_scl = GPIO_PIN_8,
    .pin_sda = GPIO_PIN_9,
    .scl_port = GPIOB,
    .sda_port = GPIOB,
};

void i2c_gpio_cfgin(void *port, uint16_t pin)
{
    GPIO_InitTypeDef GPIO_InitStruct = {0};
    GPIO_InitStruct.Pin = pin;
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    HAL_GPIO_Init(port, &GPIO_InitStruct);
}
void i2c_gpio_cfgout(void *port, uint16_t pin)
{
    GPIO_InitTypeDef GPIO_InitStruct = {0};
    GPIO_InitStruct.Pin = pin;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    HAL_GPIO_Init(port, &GPIO_InitStruct);
}
void i2c_gpio_t_delay(uint32_t us)
{
	do{
		us--;
	}while( us!=0 );
}
void i2c_gpio_write(void *port, uint16_t pin, uint8_t value)
{
	HAL_GPIO_WritePin(port, pin, (GPIO_PinState)value);
}
uint8_t i2c_gpio_read(void *port, uint16_t pin)
{
	uint8_t ret;
	ret = HAL_GPIO_ReadPin(port, pin);
	return ret;
}